Skip to main content

Static API

Next to the AMQP, where more realtime data is communicated, Mobilidata also provides a static API. This API is for data that doesn't change often, like e.g. the location and information of a traffic sign.

The API collects multiple (government) data sources and functions as a one-stop-shop for all static data. It is also responsible to keep the data up-to-date. Compared to the TN-ITS feed, the static API makes sure that you get the latest data and no additional steps are required. The available data is divided into two types: point and route related information.

The following data is available via the static API:

TypeAPI
Road signsGet /road-signs/v1
ARU Road signsGet /aru-road-signs/v1
Road sign feedbackPost /feedback/road-signs/v1
ARU Road sign feedbackPost /feedback/aru-road-signs/v1
Speed limitsGet /speed-limits/v1
Speed limits feedbackPost /feedback/speed-limits/v1
Parking lotsGet /parking-lots/v1
Parking lot feedbackPost /feedback/parking-lots/v1
Advised routesGet /advised-routes/v1/school-zone
Medical facilitiesGet /advised-routes/v1/medical-facility
EventsGet /advised-routes/v1/events
Bycicle streetsGet /advised-routes/v1/bycicle-streets
Calamity routesGet /advised-routes/v1/ccalamity-routes
Advised routes feedbackPost /feedback/advised-routes/v1
info

Official documentation of the API itself, can be found here: static-data.mobilidata.vlaanderen.be/docs

Data sources

The static API is mainly based on the TN-ITS feed of the Flemish government. The reason to offer this separatly, is due to the formal setup of the TN-ITS standard. Normally, TN-ITS is started with a base set of information and then updated ever after. For service providers, this is very inconvenient. Hence, Mobilidata offers a minimal daily updated complete snapshot of the TN-ITS feed. Where possible, this dataset will be enhanced with data from other sources, offering the most complete and accurate set as possible.

For certain applications, like dynamic speed zones, data from the TN-ITS feed is combined with other sources (for example calendars) to create specific IVI messages, which are posted on the MI bus.

Mapping

General fields IVI (In Vehicle Information)

IVIMTN-ITS
Service ProviderIDRoadFeature.RoadFeatureSource
iviIdentificationNumber
timestampRoadFeature.beginLifespanVersion
validFromRoadFeature.validFrom
validToRoadFeature.validTo
connectedIviStructures
iviStatus: new, update, cancellation, negationRoadFeature.Condition.negate RoadFeature.LifeCycleInfo (RoadFeature.beginLifespanVersion / RoadFeature.endLifespanVersion) RoadFeature.updateInfo
Geographic location container: referencePositionRoadFeature.LocationReference
Geographic location container: zoneIDRoadFeature.LocationReference
Geographic location container: laneNumberRoadFeature.LocationReference
Geographic location container: zoneHeading: directionRoadFeature.LocationReference
Geographic location container: zone: linesegmentRoadFeature.LocationReference

General fields IVI IVS (in vehicle signage)

IVIMTN-ITS
detectionZoneId
relevanceZoneIds
direction

TN-ITS roadfeatures vs IVI IVS-DSLI (Dynamic Speed Limit Information)

IVIMTN-ITS
Speed is defined in ISO14823 code as attributeRoadFeature.RoadSignProperty.RoadSignContent

TN-ITS roadfeatures vs IVI IVS-OSI (Other Signage Information)

IVIMTN-ITS
applicableLanesRoadFeature.Condition LaneCondition.startLane
roadSignCodesRoadFeature.RoadSignProperty.RoadSignType
roadSignCodeRoadFeature.RoadSignProperty.RoadSignType RoadFeature.RoadSignProperty.RoadSignContent

Technical implementation

A key is required to access the API. Once you have the key, you can easily check if the data comes in with following bash command:

curl -X GET -H "x-api-key:<your_key>" <base_url>/<uc_endpoint>/<version>

Example

Example Message
<tnits:RoadFeature>
<tnits:validFrom>1950-01-01</tnits:validFrom>
<tnits:validTo>9999-01-01</tnits:validTo>
<tnits:beginLifespanVersion>2023-04-13T21:11:11</tnits:beginLifespanVersion>
<tnits:endLifespanVersion>9999-01-01T00:00:00</tnits:endLifespanVersion>
<tnits:updateInfo>
<tnits:UpdateInfo>
<tnits:type>Add</tnits:type>
</tnits:UpdateInfo>
</tnits:updateInfo>
<tnits:source xlink:href="
http://spec.tn-its.eu/codelists/RoadFeatureSourceCode#fixedPlateRoadSign
"></tnits:source>
<tnits:type xlink:href="
http://spec.tn-its.eu/codelists/RoadFeatureTypeCode#roadSign
"></tnits:type>
<tnits:properties>
<tnits:RoadSignProperty>
<tnits:gddCode xlink:href="
http://spec.tn-its.eu/codelists/RoadSignTypeCode#12_117
"></tnits:gddCode>
</tnits:RoadSignProperty>
</tnits:properties>
<tnits:properties>
<tnits:GenericRoadFeatureProperty>
<tnits:type xlink:href="
http://spec.tn-its.eu/codelists/RoadFeaturePropertyTypeCode#RoadSignType
"></tnits:type>
<tnits:value>B1</tnits:value>
</tnits:GenericRoadFeatureProperty>
</tnits:properties>
<tnits:id>
<tnits:RoadFeatureId>
<tnits:providerId>Flanders Region</tnits:providerId>
<tnits:id>b8754336-0917-40a5-98eb-39555fece546</tnits:id>
</tnits:RoadFeatureId>
</tnits:id>
<tnits:locationReference>
<tnits:GeometryLocationReference>
<tnits:encodedGeometry>
<gml:Point gml:id="iaf5c118f-3308-4bb3-b8ca-65052776cf34">
<gml:coordinates>3.6857984511016233,51.17160188629828</gml:coordinates>
</gml:Point>
</tnits:encodedGeometry>
</tnits:GeometryLocationReference>
</tnits:locationReference>
<tnits:locationReference>
<tnits:OpenLRLocationReference>
<tnits:binaryLocationReference>
<tnits:BinaryLocationReference>
<tnits:base64String>KwKe/CRjgkAZAP/9AAFACQ==</tnits:base64String>
<tnits:openLRBinaryVersion xlink:href="
http://spec.tn-its.eu/codelists/OpenLRBinaryVersionCode#v1_4
"></tnits:openLRBinaryVersion>
</tnits:BinaryLocationReference>
</tnits:binaryLocationReference>
</tnits:OpenLRLocationReference>
</tnits:locationReference>
</tnits:RoadFeature>

References

Traffic signs

Descripion of the traffic signs in Belgium can be found on the following links: